// 引入fs模块
const fs = require('fs');
const path = require('path');

/**
 * 获取目录下的所有子目录和文件
 * @param {string} dir - 要获取的目录路径
 * @return {Array} - 目录树，以数组形式返回
 */
function getDirectoryTree(dir) {
  // 初始化目录树数组
  let tree = [];

  // 使用fs模块的readdir方法读取目录下的所有子目录和文件
  fs.readdir(path.join(__dirname, dir), (err, files) => {
    if (err) {
      // 如果读取目录出错，抛出异常
      throw err;
    }
    console.log(files);
    // 遍历所有子目录和文件
    files.forEach(file => {
      // 获取文件的全路径
      const filePath = path.join(dir, file);

      // 判断当前路径是否为目录
      fs.stat(path.join(__dirname, filePath), (err, stat) => {
        if (err) {
          // 如果获取文件状态出错，抛出异常
          throw err;
        }

        // 如果是目录，递归调用getDirectoryTree函数获取该目录的子目录和文件
        if (stat.isDirectory()) {
          // tree.push({
          //   name: file, // 目录名
          //   children: getDirectoryTree(filePath), // 子目录和文件
          // });
          getDirectoryTree(filePath)

        } else {
          // 如果是文件，直接添加到目录树中
          // tree.push(file);

          fs.truncate(path.join(__dirname, filePath) , 0, function(err){
            if(err){
              throw err;
            }
            console.log('文件内容截断成功');
          })
        }
      });
    });
  });
  return tree; // 返回目录树
}

// 使用getDirectoryTree函数获取指定目录的子目录和文件

console.log(getDirectoryTree('/canvas/'));

/**
 *
 * if (window?.__POWERED_BY_WUJIE__) {
 *   // eslint-disable-next-line
 *   window['__webpack_public_path__'] = window?.__WUJIE_PUBLIC_PATH__;
 * }
 *
 * */
